package br.ucb.rest.persistencia.vo;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the rst_ingrediente database table.
 * 
 */
@Entity
@Table(name="rst_ingrediente")
@SequenceGenerator(name="RST_INGREDIENTE_NUINGREDIENTE_GENERATOR", sequenceName="RESTAURANTE.RST_INGREDIENTE_NU_INGREDIENTE_SEQ")
@NamedQueries({
	@NamedQuery(name="IngredienteVO.listarPorCardapio", 
		query="SELECT a FROM IngredienteVO a " +
			"INNER JOIN a.colCardapioIngredienteVO b " +
			"WHERE b.cardapioVO.nuCardapio = :nuCardapio ")
})
public class IngredienteVO implements Serializable {
	private static final long serialVersionUID = -7572764970585895184L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO, generator="RST_INGREDIENTE_NUINGREDIENTE_GENERATOR")
	@Column(name="nu_ingrediente", unique=true, nullable=false)
	private Integer nuIngrediente;

	@Column(name="no_ingrediente", nullable=false, length=20)
	private String noIngrediente;

	//bi-directional many-to-one association to CardapioIngredienteVO
	@OneToMany(mappedBy="ingredienteVO")
	private List<CardapioIngredienteVO> colCardapioIngredienteVO;

	//bi-directional many-to-one association to TipoUnidadeMedidaVO
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="nu_unidade_medida", nullable=false)
	private TipoUnidadeMedidaVO tipoUnidadeMedidaVO;

	public Integer getNuIngrediente() {
		return nuIngrediente;
	}

	public void setNuIngrediente(Integer nuIngrediente) {
		this.nuIngrediente = nuIngrediente;
	}

	public String getNoIngrediente() {
		return noIngrediente;
	}

	public void setNoIngrediente(String noIngrediente) {
		this.noIngrediente = noIngrediente;
	}

	public List<CardapioIngredienteVO> getColCardapioIngredienteVO() {
		return colCardapioIngredienteVO;
	}

	public void setColCardapioIngredienteVO(
			List<CardapioIngredienteVO> colCardapioIngredienteVO) {
		this.colCardapioIngredienteVO = colCardapioIngredienteVO;
	}

	public TipoUnidadeMedidaVO getTipoUnidadeMedidaVO() {
		return tipoUnidadeMedidaVO;
	}

	public void setTipoUnidadeMedidaVO(TipoUnidadeMedidaVO tipoUnidadeMedidaVO) {
		this.tipoUnidadeMedidaVO = tipoUnidadeMedidaVO;
	}
	
}